#include "../crypt/crypt.h"
#include "../utils/utils.h"
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[]){
  char* algo=MCRYPT_RIJNDAEL_256, *mode=MCRYPT_CBC, *pass;
  MCRYPT td;
  int tailleALire=256;

  if(argc!=2){
    printf("Usage: %s <password> \n", argv[0]);
    return 0;
  }else{
    pass = argv[1];
  }
  
  /* Ouverture du module */
  td = mcrypt_module_open(algo, NULL, mode, NULL);
  if (td == MCRYPT_FAILED) {  
    fprintf(stderr, "Initialisation impossible...\n");
  }

  int keysize = mcrypt_enc_get_key_size(td);
  int ivsize = mcrypt_enc_get_iv_size(td);
  char* key = (char*) malloc(sizeof(char)*keysize);
  char* iv = (char*) malloc(sizeof(char)*ivsize);
  
  /* Génération du clé aléatoire à partir du password */
  /* Le résultat est stocké dans key                  */
  key_generator(key, keysize, pass);

  saveKey(key, keysize);

  char* read = readKey();

  close_module(&td);
  free(key);
  free(iv);

  return 0;
}
